
// MyBatis 的强大特性之一便是它的动态 SQL。
// 如果你有使用 JDBC 或其它类似框架的经验，你就能体会到根据不同条件拼接 SQL 语句的痛苦。
// 例如拼接时要确保不能忘记添加必要的空格，还要注意去掉列表最后一个列名的逗号。
// 利用动态 SQL 这一特性可以彻底摆脱这种痛苦。

// 虽然在以前使用动态 SQL 并非一件易事，
// 但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 SQL 语言得以改进这种情形。

     
// 动态 SQL 元素和 JSTL 或基于类似 XML 的文本处理器相似。
// 在 MyBatis 之前的版本中，有很多元素需要花时间了解。
// MyBatis 3 大大精简了元素种类，现在只需学习原来一半的元素便可。
// MyBatis 采用功能强大的基于 OGNL 的表达式来淘汰其它大部分元素。

if
{
	// 动态 SQL 通常要做的事情是根据条件包含 where 子句的一部分。	
}


choose (when, otherwise)
{
	// 有时我们不想应用到所有的条件语句，而只想从中择其一项。针对这种情况，MyBatis 提供了 choose 元素，它有点像 Java 中的 switch 语句。


	
}


trim (where, set)
{
	// where 元素只会在至少有一个子元素的条件返回 SQL 子句的情况下才去插入“WHERE”子句。
	// 而且，若语句的开头为“AND”或“OR”，where 元素也会将它们去除。
	
}


foreach
{	
	// 动态 SQL 的另外一个常用的操作需求是对一个集合进行遍历，通常是在构建 IN 条件语句的时候。
	
}












